package dr.request.user.action;

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dr.controller.*;
import dr.request.dao.*;

public class RequestListAction extends ActionSupportLogin{
	
	//@Override
	public String execute(HttpServletRequest request, 
			HttpServletResponse response) throws Throwable{

		String id=getUserLoginId(request);// session
		
		//login check
		if(id==null) return LOGINULL_PATH;
		if(id.equals("admin")) return "adminList.do";
		//login check
		
		//검색필드 & 검색어 처리
		request.setCharacterEncoding("euc-kr");
		String keyField = request.getParameter("keyField");
		String keyWord = request.getParameter("keyWord");
		
		if(keyField == null){
			keyField = "";
		}
		if(keyWord == null){
			keyWord = "";
		}
		
		String pageNum = request.getParameter("pageNum"); //페이지 번호
		
		if(pageNum == null){
			pageNum = "1";
		}
		
		int pageSize = 10; //한 페이지의 글의 갯수
		int currentPage = Integer.parseInt(pageNum);
		int startRow = (currentPage - 1)* pageSize+1;
		int endRow = currentPage * pageSize;
		int count = 0;
		int number = 0;
		
		List requestList = null;
		RequestDAO manager = RequestDAO.getInstance();
		count = manager.getArticleCount(keyField, keyWord); // 총 카운트 수
		
		if(count > 0){ // 카운트가 1개 이상이면 데이터 가져오기
			requestList = manager.getArticles(startRow, endRow, keyField, keyWord);//현재 페이지에 해당하는 글 목록
		}
		
		number = count-(currentPage-1) * pageSize; //보여지는 번호
		//sessionId 값 설정...

		request.setAttribute("sessionId", id);
		request.setAttribute("currentPage", new Integer(currentPage));
        request.setAttribute("startRow", new Integer(startRow));
        request.setAttribute("endRow", new Integer(endRow));
        request.setAttribute("count", new Integer(count)); //db에서 빼온정보
        request.setAttribute("pageSize", new Integer(pageSize));
        request.setAttribute("keyField", keyField);
        request.setAttribute("keyWord", keyWord);
		request.setAttribute("number", new Integer(number));
        request.setAttribute("requestList", requestList); //db에서 빼온정보
        
        
        return "/request/list.jsp";
		
	}

}
